home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / GEM / EASYGEM1.D < prev    next >
Encoding:
Modula Definition  |  1990-10-09  |  4.6 KB  |  113 lines

  1. DEFINITION MODULE EasyGEM1;
  2.  
  3. (*  Inhalt des Moduls:
  4.  *
  5.  *  - Bequeme Auswahl von Dateien mit Selektor (SelectFile)
  6.  *  - Hilfsroutinen für Klemmbrett-Funktionen (AESMisc.Read/WriteScrapDir).
  7.  *
  8.  *  System              : Megamax Modula-2 (MOS 2.0)
  9.  *  Autor               : Thomas Tempelmann
  10.  *  Vertrieb            : Application Systems Heidelberg
  11.  *)
  12.  
  13. FROM MOSGlobals IMPORT FileStr, SfxStr;
  14.  
  15.  
  16. VAR SelectMask: FileStr;
  17.       (*
  18.        * Speichert zuletzt verwendeten Pfad mit Maske (z.B. "C:\MM2\*.*")
  19.        * Braucht normalerweise überhaupt nicht von außen verändert werden,
  20.        * es sei denn, eine bestimmte Maske oder Pfad ist erwünscht.
  21.        * Enthält 'SelectMask' nur die Maske oder nur den Pfad, wird der
  22.        * fehlende Teil bei Bedarf durch "*.*" bzw. den akt. Pfad ersetzt.
  23.        *)
  24.  
  25. PROCEDURE SelectFile (   titel: ARRAY OF CHAR;
  26.                       VAR name: ARRAY OF CHAR; VAR ok: BOOLEAN);
  27.       (*
  28.        * Zeigt GEM-Datei-Auswahlbox an.
  29.        *
  30.        * Eingabewerte:
  31.        *   'titel':  Ab TOS 1.4 wird dieser bis zu 30 Zeichen langer Text
  32.        *             als Überschrift der Box angezeigt.
  33.        *   'name':   Voreingestellter Name. Ist darin ein Pfad enthalten,
  34.        *             wird dieser mit "*.*" als Maske angezeigt.
  35.        *             Ist kein Pfad enthalten, wird 'SelectMask' verwendet.
  36.        *             Ist ein einfacher Dateiname enthalten, wird dieser
  37.        *             als Vorauswahl angezeigt, sonst wird nichts vorausgewählt.
  38.        *
  39.        * Rückgabewerte:
  40.        *   'name':   Enthält Dateiname inklusive vollst. Pfadnamen.
  41.        *             Die Datei muß nicht zwangsläufig existieren: Es wird
  42.        *             das geliefert, was beim Verlassen im Namensfels steht.
  43.        *             Vorsicht: Wenn kein Name angeklickt bzw. das Namensfeld
  44.        *             leer blieb, liefert 'name' nur den Pfadnamen (mit einem
  45.        *             Backslash abgeschlossen). Der Dateiname kann z.B. mit
  46.        *             'FileNames.FileName()' ermittelt und dann auf Null-Länge
  47.        *             überprüft werden.
  48.        *   'ok':     Ist TRUE, wenn der OK-Knopf angeklickt oder <Return>
  49.        *             gedrückt wurde. Ist FALSE, wenn <Abbruch> gewählt
  50.        *             wurde ('name' bleibt dann unverändert).
  51.        *
  52.        * Einfache Benutzungsregel:
  53.        * -------------------------
  54.        *    'SelectMask' braucht in der Regel gar nicht verändert werden,
  55.        *    auf 'name' sollte vor dem Aufruf ein Leerstring zugewiesen werden.
  56.        *
  57.        * Beispiele:
  58.        * ----------
  59.        *
  60.        * Beim Aufruf (Annahme: Der akt. Pfad sei "C:\MM2"):
  61.        *
  62.        *  Eingabe        Eingabe        Anzeige         Anzeige
  63.        *  'SelectMask'   'name'         Pfad-Feld       Namensfeld
  64.        *  ------------   ------------   -------------   ------------
  65.        *  ""             ""             "C:\MM2\*.*"    leer
  66.        *  "C:\*.*"       ""             "C:\*.*"        leer
  67.        *  "D:\"          "DATEI"        "D:\*.*"        "DATEI"
  68.        *  "*.TXT"        ""             "C:\MM2\*.TXT"  leer
  69.        *  "C:\*.TXT"     "A:\"          "A:\*.*"        leer
  70.        *  "C:\*.TXT"     "A:\T.T"       "A:\*.*"        "T.T"
  71.        *
  72.        * Nach dem Aufruf (bei "OK"-Wahl):
  73.        *
  74.        *  Anzeige         Anzeige       Rückgabe
  75.        *  Pfad-Feld       Namensfeld    'name'
  76.        *  -------------   ------------  ------------
  77.        *  "C:\*.*"        ""            ""
  78.        *  "C:\*.TXT"      "A.DEF"       "C:\A.DEF"
  79.        *)
  80.  
  81.  
  82. PROCEDURE MakeScrapName (suffix: SfxStr; VAR name: ARRAY OF CHAR);
  83.   (*
  84.    * Erzeugt einen Klemmbrett-Dateinamen. Der Pfadname wird mittels
  85.    * ReadScrapDir ermittelt - ist dieser nicht vorhanden, wird er
  86.    * erst aus dem Environment-String "CLIPBRD" zu holen versucht,
  87.    * schlägt auch dies fehl, wird ein Ordner namens CLIPBRD auf dem
  88.    * ersten beschreibbaren Laufwerk von C: an angelegt, ansonsten
  89.    * auf A:, auf jeden Fall wird dann der ermittelte Pfadname mit
  90.    * WriteScrapDir zugewiesen.
  91.    *
  92.    * Eingabe:
  93.    *   'suffix': Endung des gewünschten Scrap-Namens.
  94.    * Rückgabe:
  95.    *   'name': Vollständiger Dateiname.
  96.    *           Ist er leer, konnte kein Scrap-Ordner angelegt werden.
  97.    *
  98.    * Beispiel:
  99.    *   MakeScrapName ('TXT', name);
  100.    *    >> name = "C:\CLIPBRD\SCRAP.TXT"
  101.    *   Nun kann entweder eine 'TXT'-Datei erzeugt werden oder das
  102.    *   Vorhandensein einer solchen mit Directory.FileExists erfragt werden.
  103.    *)
  104.  
  105. PROCEDURE ClearScrap;
  106.   (*
  107.    * Löscht alle "SCRAP.*"-Dateien im Scrap-Ordner, falls dieser
  108.    * existiert.
  109.    *)
  110.  
  111.  
  112. END EasyGEM1.
  113.